package com.campus.help.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.campus.help.common.Result;
import com.campus.help.dto.MerchantLoginDTO;
import com.campus.help.entity.Merchant;

/**
 * 商户服务接口
 */
public interface MerchantService extends IService<Merchant> {
    
    /**
     * 商户登录
     */
    Result login(MerchantLoginDTO loginDTO);
    
    /**
     * 根据用户名查询商户
     */
    Merchant getByUsername(String username);
    
    /**
     * 更新登录信息
     */
    void updateLoginInfo(Long merchantId);
    
    /**
     * 获取商户发布的劳务列表
     */
    com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.campus.help.vo.MerchantLaborVO> getMerchantLabors(
        Long merchantId, int page, int size, String jobTitle, Long typeId, String workType, String status);
    
    /**
     * 修改密码
     */
    boolean changePassword(Long merchantId, String oldPassword, String newPassword);
    
    /**
     * 获取商户统计信息
     */
    java.util.Map<String, Object> getMerchantStats(Long merchantId);
    
    /**
     * 商户发布劳务
     */
    com.campus.help.entity.Labor publishLabor(com.campus.help.entity.Labor labor, Long merchantId);
    
    /**
     * 更新劳务信息
     */
    com.campus.help.entity.Labor updateLabor(com.campus.help.entity.Labor labor, Long merchantId);
    
    /**
     * 关闭劳务
     */
    boolean closeLabor(Long laborId, Long merchantId);
    
    /**
     * 获取劳务详情
     */
    com.campus.help.entity.Labor getLaborDetail(Long laborId, Long merchantId);
    
    /**
     * 获取劳务申请列表
     */
    com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.campus.help.vo.LaborApplicationVO> getLaborApplications(Long laborId, Long merchantId, Integer page, Integer size);
    
    /**
     * 审核劳务申请
     */
    boolean reviewApplication(Long applicationId, Long merchantId, String status, String reviewNote);
    
    /**
     * 更新商户信息
     */
    Merchant updateMerchantInfo(Merchant merchant);
}